//
//  WTNetworking.m
//  WTNetworking
//
//  Created by dllo on 16/5/17.
//  Copyright © 2016年 dllo. All rights reserved.
//

#import "WTNetworking.h"
#import "Reachability.h"
#import "AFNetworking.h"

@implementation WTNetworking

+ (void)wtGETWithURL:(NSString *)url parameter:(NSDictionary *)dic succes:(succesBlock)sucBlock failure:(failureBlock)errorBlock
{
    // 逻辑:
    // (1).先从本地取数据,显示在界面上
    // (2).再从网络获取数据
    // (a),如果有网,显示最新数据,更新本地数据
    // (b),如果没网,提示用户不好
    
    
    
    
    
    
    
    
    
 /*没有括号的方案不太完美    */
    // 1.判断网络情况
    // ***重要** self在+号方法里代表类
    if ([self checkNetworkingStatues]) {
        // 2.如果有网,则从网络请求
        AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
        // 设置请求类型
        [manager.responseSerializer setAcceptableContentTypes:[NSSet setWithObjects:@"text/html", @"application/json", @"text/json", @"text/javascript",@"text/html",@"text/css", @"text/plain", @"application/x-javascript", @"application/javascript", nil]];
        [manager GET:url parameters:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
            // 回调
            sucBlock(responseObject);
            // 更新本地数据
            
            
            
        } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
            // 回调失败的结果
            errorBlock(error);
            // 从本地数据库取出数据
            
            
        }];
        
    }
    
    
//    } else
//    {
//        // 没有网络,从本地取出数据
//        
//    }
    
    
    
    
    
    // 2.1请求成功,将本地数据更新
    // 2.1请求失败,读取本地数据,并提示用户
    // 3.如果没有网,则从本地区,提示用户
}
// 检查网络状况
+ (BOOL)checkNetworkingStatues
{
    // reachabilityForInternetConnection 会自动获取网络状态,并将信息存入对象中
    Reachability *reachability = [Reachability reachabilityForInternetConnection];
    if (reachability.currentReachabilityStatus == NotReachable) {
        return NO;
    } else
    {
        return YES;
    }
    
    
    
    
}





@end
